
package com.eva.framework.dto;

/**
 * <p>
 * 为了简化系统逻辑，本对象是EVA.EPC框架发送给服务端的唯一对像类型，所以要发送
 * 给服务器的对象都必须是此类（及其子类）的实例.<br>
 *
 * <p>
 * 本类扩展 {@link DataFromClient} 类的作用，仅是为了实现跟Web浏览器端通过JSONP进行数据格式传递。
 *
 * <p>
 * 关于整个MVC框架捕获和处理客户端请求的流程，请参见：{@link com.eva.framework.HttpController}.
 *
 * @author Jack Jiang
 * @since 4.5
 */
public class DataFromClient4Web extends DataFromClient {
    private static final long serialVersionUID = 1L;

    /**
     * 数据返回格式：JSON格式，主要用于APP端调用时
     */
    public final static String RET_FORMAT_JSON = "json";
    /**
     * 数据返回格式：JSON格式，主要用于Web端调用时实现跨域读取数据
     */
    public final static String RET_FORMAT_JSONP = "jsonp";

    /**
     * 数据返回格式
     */
    protected String format = RET_FORMAT_JSON;

    /**
     * 本参数只在retFormat= {@link #RET_FORMAT_JSONP} 时有意义，表示jsonp对应的客户端JS回调函数.
     * 补充：为了兼容jQuery的跨域回调，参数名就定为jsoncallback了
     */
    protected String jsoncallback = null;

    public String getFormat() {
        return format;
    }

    public DataFromClient4Web setFormat(String retFormat) {
        this.format = retFormat;
        return this;
    }

    public String getJsoncallback() {
        return jsoncallback;
    }

    public DataFromClient4Web setJsoncallback(String retCallBack) {
        this.jsoncallback = retCallBack;
        return this;
    }


    /**
     * 一个方便的短方法名的新建本实例的类方法
     */
    public static DataFromClient4Web n() {
        return new DataFromClient4Web();
    }
}
